This notebook was written for the AWEAR Case Studies as part of a PhD project on Engineering Systems Design in Healthcare at the Engineering Systems Division, DTU Management, in collaboration with Rigshospitalet-Glostrup.
The purpose of this notebook is to provide regular reports on the data being recorded from study participants, to check that it is being recorded and looks as expected. The R script imports, tests and plots data from a specified participant and timeframe, as shown in the code and output below.
Report subject and period:
This report is for user P13NB for the time period from 2018-05-28 to 2018-06-15
Import and restructure data:
Overview of available csv files and their current use status:
| “activity.csv” |
coded activity types |
in use |
| “battery.csv” |
charging log |
in use |
| “bluetooth.csv” |
- |
not in use |
| “calllog.csv” |
log of phonecalls |
not in use |
| “experience_sampling.csv” |
answers to daily self-reports |
in use |
| “hardware_info.csv” |
- |
not in use |
| “location.csv” |
GPS data from watch and phone |
in use |
| “screen.csv” |
screen on/off transitions (phone) |
in use |
| “sms.csv” |
sms log |
not in use |
| “step_count.csv” |
step counts from watch and phone |
in use |
| “wearable.csv” |
- |
no longer in use |
| “wifi.csv” |
- |
not in use |
The output below confirms which files have been imported, followed by processing steps.
activity file imported
battery file imported
calllog file imported
experience_sampling file imported
location file imported
screen file imported
sms file imported
step_count file imported
***
Processing file containing: activity confidence
Complete: Data extracted for specified user
Complete: Data extracted for period of interest
Complete: funf_version converted to dsource column indicating whether reading is from phone or watch
Complete: column 'label' created describing activity based on activity code
Complete: activity data reduced from 6091 to 3848 rows by keeping only the max-confidence activities for each unique timestamp
***
Processing file containing: plugged status level
Complete: Data extracted for specified user
Complete: Data extracted for period of interest
Complete: funf_version converted to dsource column indicating whether reading is from phone or watch
Complete: column 'mode' created describing charging status based on 'plugged' variable
***
Processing file containing: name number type duration
User ID is not in dataset, returning NULL
***
Processing file containing: question_id answer
Complete: Data extracted for specified user
Complete: Data extracted for period of interest
Complete: funf_version converted to dsource column indicating whether reading is from phone or watch
***
Processing file containing: lat lon accuracy provider
Complete: Data extracted for specified user
Complete: Data extracted for period of interest
Complete: funf_version converted to dsource column indicating whether reading is from phone or watch
***
Processing file containing: screen_on
Complete: Data extracted for specified user
Complete: Data extracted for period of interest
Complete: funf_version converted to dsource column indicating whether reading is from phone or watch
***
Processing file containing: address body type read
User ID is not in dataset, returning NULL
***
Processing file containing: step_count
Complete: Data extracted for specified user
Complete: Data extracted for period of interest
Complete: funf_version converted to dsource column indicating whether reading is from phone or watch
Quality check: data source
Check whether data coming from watch, phone or both (also gives date of last reading).
Data in activity comes from phone
Last reading in activity is on [1] "2018-06-13 08:13:12 CEST"
Data in battery comes from phone
Last reading in battery is on [1] "2018-06-13 08:13:12 CEST"
Data in experience_sampling comes from phone
Last reading in experience_sampling is on [1] "2018-06-12 17:55:51 CEST"
Data in location comes from watch phone
Last reading in location is on [1] "2018-06-13 08:17:29 CEST"
Data in screen comes from phone
Last reading in screen is on [1] "2018-06-12 18:46:12 CEST"
Data in step_count comes from watch phone
Last reading in step_count is on [1] "2018-06-13 08:13:12 CEST"
LS0tDQp0aXRsZTogJ0FXRUFSIFN0dWRpZXM6IERhdGEgQ2hlY2tlcicNCmF1dGhvcjogJ0p1bGlhIFRob3JwZScNCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQo8IS0tIENvZGUgYmFzZWQgb24gRGF0YUNoZWNrZXJfbWFpbl92Ml8yMDE4MDIyMC5SLiAtLT4NCg0KVGhpcyBub3RlYm9vayB3YXMgd3JpdHRlbiBmb3IgdGhlIEFXRUFSIENhc2UgU3R1ZGllcyBhcyBwYXJ0IG9mIGEgUGhEIHByb2plY3Qgb24gKkVuZ2luZWVyaW5nIFN5c3RlbXMgRGVzaWduIGluIEhlYWx0aGNhcmUqIGF0IHRoZSBFbmdpbmVlcmluZyBTeXN0ZW1zIERpdmlzaW9uLCBEVFUgTWFuYWdlbWVudCwgaW4gY29sbGFib3JhdGlvbiB3aXRoIFJpZ3Nob3NwaXRhbGV0LUdsb3N0cnVwLg0KDQpUaGUgcHVycG9zZSBvZiB0aGlzIG5vdGVib29rIGlzIHRvIHByb3ZpZGUgcmVndWxhciByZXBvcnRzIG9uIHRoZSBkYXRhIGJlaW5nIHJlY29yZGVkIGZyb20gc3R1ZHkgcGFydGljaXBhbnRzLCB0byBjaGVjayB0aGF0IGl0IGlzIGJlaW5nIHJlY29yZGVkIGFuZA0KbG9va3MgYXMgZXhwZWN0ZWQuIFRoZSBSIHNjcmlwdCBpbXBvcnRzLCB0ZXN0cyBhbmQgcGxvdHMgZGF0YSBmcm9tIGEgc3BlY2lmaWVkIHBhcnRpY2lwYW50IGFuZCB0aW1lZnJhbWUsIGFzIHNob3duIGluIHRoZSBjb2RlIGFuZCBvdXRwdXQgYmVsb3cuDQoNCmBgYHtyIFNFVFVQLCBpbmNsdWRlPUZBTFNFfQ0KIyBTZXQgdGhlIGRyaXZlLCBsb2FkIHBhY2thZ2VzIGFuZCBmdW5jdGlvbnMuDQoNCnNldHdkKCJNOi9QaERfRm9sZGVyL0Nhc2VTdHVkaWVzL0RhdGFfYW5hbHlzaXMvc291cmNlIikNCg0KIyBMb2FkIHJlcXVpcmVkIHBhY2thZ2VzOiAoc2VlIGh0dHBzOi8vY29kZS5hZG9ubGluZS5pZC5hdS91bmFibGUtdG8tbW92ZS10ZW1wb3JhcnktaW5zdGFsbGF0aW9uLXIvIGZvciBpc3N1ZXMpDQpsaWJyYXJ5KGRhdGEudGFibGUpDQpsaWJyYXJ5KGR0cGx5cikNCmxpYnJhcnkoZHBseXIpDQpsaWJyYXJ5KG1hZ3JpdHRyKQ0KbGlicmFyeShsdWJyaWRhdGUpDQpsaWJyYXJ5KGdncGxvdDIpDQpsaWJyYXJ5KHJlc2hhcGUyKQ0KbGlicmFyeShtYXB0b29scykNCmxpYnJhcnkocGxvdGx5KQ0KbGlicmFyeShtYXBzKQ0KbGlicmFyeShtYXBwcm9qKQ0KbGlicmFyeShzcCkNCmxpYnJhcnkoY2FUb29scykNCg0KIyBMb2FkIGN1c3RvbSBmdW5jdGlvbnM6DQpzb3VyY2UoIkpSVF91dGlscy5SIikNCg0KIyBEZWZpbmUgY29uc3RhbnRzOg0KZm9sZGVyIDwtICIuLi8uLi9EYXRhX2R1bXBzL2R1bXBfY3VycmVudF9hbmFseXNpcy8iICMgcGF0aCB0byBmb2xkZXIgdGhhdCBob2xkcyBtdWx0aXBsZSAuY3N2IGZpbGVzLCBkb3dubG9hZGVkIGZyb20gbmlnaHRpbmdhbGUgd2VicG9ydGFsDQpub3QuaW4udXNlIDwtIGMoImJsdWV0b290aCIsImhhcmR3YXJlX2luZm8iLCJ3ZWFyYWJsZSIsIndpZmkiKQ0KYWN0aXZpdHkuc2VsZWN0aW9uIDwtIGMoIlN0aWxsIiwgIkZvb3QiLCAiVmVoaWNsZSIsICJUaWx0aW5nIiwgIkJpY3ljbGUiKSAjIG1haW4gYWN0aXZpdHkgdHlwZXMNCnRvX3Bsb3QgPC0gYygiYWN0aXZpdHkiLCANCiAgICAgICAgICAgICAiYmF0dGVyeSIsIA0KICAgICAgICAgICAgICJleHBzIiwgDQogICAgICAgICAgICAgImxvY2F0aW9uIiwgDQogICAgICAgICAgICAgInNjcmVlbiIsIA0KICAgICAgICAgICAgICJzdGVwcyIpDQp1c2VycyA8LSBsaXN0KGp1bGlhID0gIjkzYTZkMzFjLWUyMTYtNDhkOC1hOWEyLWYyZjcyMzYyNTQ4ZCIsDQogICAgICAgICAgICAgIGRlYW4gPSAiYjEzMTYyODAtMzhhNi00NWUxLTliYjktN2FmYjJhMWEyYTk2IiwNCiAgICAgICAgICAgICAgbHVuYSA9ICI0YWZlNjFjNS1jNWNjLTRkZTQtOGY1MC05NDk5MDU3NjY4YWQiLA0KICAgICAgICAgICAgICBwZXIgPSAiN2JmNWZlYzMtZjQ2Zi00MTllLTk1NzMtMDAxZmU5YjQ3ZDgxIiwNCiAgICAgICAgICAgICAgdmVyZW5hID0gImEwYzc0YTg4LWIyOTMtNGIzMS05MmMwLTk2NzUwMmIyODEzMiIsDQogICAgICAgICAgICAgIGFnemFtID0gIjUyMTUyZGRhLTBmNTQtNDZkMS1hZmZhLTZkZWE4NWY4NDBkYyIsDQogICAgICAgICAgICAgIGFuamEgPSAiMzZmOWQwNjEtYzVlOS00ZjMwLTkxYjItODMzNTFmZjQwMjg4IiwNCiAgICAgICAgICAgICAgI1AwMUZBID0gIjYzMjFmN2VmLWE5NTgtNDRhZC1iOGU1LTVhYTA0YmMwMDRlMSIsDQogICAgICAgICAgICAgIFAwM0pKID0gImU5ZjQ0ZWI1LTg5NjItNDg5NC04M2M2LTc4MzAyNWM2ZWFlYSIsDQogICAgICAgICAgICAgIFAwNlNTID0gImY5ZjI0ODM4LWM4NDQtNDJkNC04MzQzLWIyMGViZGQyMjBmMyIsDQogICAgICAgICAgICAgIFAwN01HID0gIjRmYmZkZGQwLWEzNDYtNDFjOC1iZThkLWY4ODA0YjUwNjhkMyIsDQogICAgICAgICAgICAgIFAwOFVIID0gImE4NWYyOTllLTdhMDktNGJhNy1iYzE5LThhMjAwYzI2ODZjMiIsDQogICAgICAgICAgICAgIFAxMEpMID0gImQwNWZhOTg0LThkM2ItNDQwNS1iNDE3LTIxMWQxYTNmNTBkNiIsDQogICAgICAgICAgICAgIFAxM05CID0gIjc1Y2M1MjQwLTc4MDUtNDU1MC1hZWFlLTg3M2RmOTk4NDcxMCIpDQoNCmBgYA0KDQojIyMgUmVwb3J0IHN1YmplY3QgYW5kIHBlcmlvZDoNCmBgYHtyIFNldHRpbmdzLCBlY2hvPUZBTFNFfQ0KDQojIFNlbGVjdCB1c2VyDQp1c2VyaWQgPC0gdXNlcnMkUDEzTkINCg0KIyBTZXQgcGVyaW9kIG9mIGludGVyZXN0DQpkLnN0YXJ0IDwtIGFzLlBPU0lYY3QoIjIwMTgtMDUtMjgiKSAjIHl5eXktbW0tZGQgDQpkLnN0b3AgPC0gYXMuUE9TSVhjdCgiMjAxOC0wNi0xNSIpDQoNCmNhdCgiVGhpcyByZXBvcnQgaXMgZm9yIHVzZXIgIiwgbmFtZXModXNlcnNbdXNlcnM9PXVzZXJpZF0pLCAiZm9yIHRoZSB0aW1lIHBlcmlvZCBmcm9tICIsIGFzLmNoYXJhY3RlcihkLnN0YXJ0KSwgIiB0byAiLCBhcy5jaGFyYWN0ZXIoZC5zdG9wKSkgDQoNCmBgYA0KDQoNCiMjIyBJbXBvcnQgYW5kIHJlc3RydWN0dXJlIGRhdGE6DQpPdmVydmlldyBvZiBhdmFpbGFibGUgY3N2IGZpbGVzIGFuZCB0aGVpciBjdXJyZW50IHVzZSBzdGF0dXM6DQoNCkZpbGUgfCBEZXNjcmlwdGlvbiB8IFN0YXR1cw0KLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tDQoiYWN0aXZpdHkuY3N2IiB8IGNvZGVkIGFjdGl2aXR5IHR5cGVzIHwgaW4gdXNlDQoiYmF0dGVyeS5jc3YiIHwgY2hhcmdpbmcgbG9nIHwgaW4gdXNlDQoiYmx1ZXRvb3RoLmNzdiIgfCAtIHwgbm90IGluIHVzZQ0KImNhbGxsb2cuY3N2IiB8IGxvZyBvZiBwaG9uZWNhbGxzIHwgbm90IGluIHVzZQ0KImV4cGVyaWVuY2Vfc2FtcGxpbmcuY3N2IiB8IGFuc3dlcnMgdG8gZGFpbHkgc2VsZi1yZXBvcnRzIHwgaW4gdXNlDQoiaGFyZHdhcmVfaW5mby5jc3YiIHwgLSB8IG5vdCBpbiB1c2UNCiJsb2NhdGlvbi5jc3YiIHwgR1BTIGRhdGEgZnJvbSB3YXRjaCBhbmQgcGhvbmUgfCBpbiB1c2UNCiJzY3JlZW4uY3N2IiB8IHNjcmVlbiBvbi9vZmYgdHJhbnNpdGlvbnMgKHBob25lKSB8IGluIHVzZQ0KInNtcy5jc3YiIHwgc21zIGxvZyB8IG5vdCBpbiB1c2UNCiJzdGVwX2NvdW50LmNzdiIgfCBzdGVwIGNvdW50cyBmcm9tIHdhdGNoIGFuZCBwaG9uZSB8IGluIHVzZQ0KIndlYXJhYmxlLmNzdiIgfCAtIHwgbm8gbG9uZ2VyIGluIHVzZQ0KIndpZmkuY3N2IiAgfCAtIHwgbm90IGluIHVzZQ0KDQpUaGUgb3V0cHV0IGJlbG93IGNvbmZpcm1zIHdoaWNoIGZpbGVzIGhhdmUgYmVlbiBpbXBvcnRlZCwgZm9sbG93ZWQgYnkgcHJvY2Vzc2luZyBzdGVwcy4NCg0KDQpgYGB7ciBJbXBvcnQsIGVjaG89RkFMU0V9DQpkYXRhc2V0cy5hbGwgPC0gZ2V0LmRhdGEoZm9sZGVyLCBub3QuaW4udXNlKSAlPiUgDQogIGxhcHBseShyZXN0cnVjdHVyZSwgdXNlcmlkLCBkLnN0YXJ0LCBkLnN0b3ApDQpkYXRhc2V0cy5hbGwgPC0gRmlsdGVyKGZ1bmN0aW9uKHgpICFpcy5udWxsKHgpWzFdLGRhdGFzZXRzLmFsbCkgIyByZW1vdmUgYW55IG51bGwgZGF0YWZyYW1lcw0KDQojdGVzdDwtZmlsdGVyKGRhdGFzZXRzLmFsbCRhY3Rpdml0eSwgdXNlcj09ImY5ZjI0ODM4LWM4NDQtNDJkNC04MzQzLWIyMGViZGQyMjBmMyIpDQoNCmBgYA0KDQoNCiMjIyBRdWFsaXR5IGNoZWNrOiBkYXRhIHNvdXJjZQ0KQ2hlY2sgd2hldGhlciBkYXRhIGNvbWluZyBmcm9tIHdhdGNoLCBwaG9uZSBvciBib3RoIChhbHNvIGdpdmVzIGRhdGUgb2YgbGFzdCByZWFkaW5nKS4gDQoNCmBgYHtyIFFDLCBlY2hvPUZBTFNFfQ0KZm9yIChpIGluIDE6bGVuZ3RoKGRhdGFzZXRzLmFsbCkpew0KICBqIDwtIGRhdGFzZXRzLmFsbFtbaV1dDQogIGlmKCFpcy5udWxsKGopKXsNCiAgICBjYXQoIkRhdGEgaW4gIixuYW1lcyhkYXRhc2V0cy5hbGwpW2ldLCJjb21lcyBmcm9tICIsIGRpc3RpbmN0KGosZHNvdXJjZSlbLDFdLCJcbiIpOw0KICAgIGNhdCgiTGFzdCByZWFkaW5nIGluIixuYW1lcyhkYXRhc2V0cy5hbGwpW2ldLCJpcyBvbiIsY2FwdHVyZS5vdXRwdXQobWF4KGokdGltZXN0YW1wKSksIlxuXG4iKTsNCiAgfQ0KfQ0KYGBgDQoNCiMjIFZpc3VhbGlzZSBkYXRhOg0KDQo8IS0tIHRvIGRvIC0tPg0KDQo8IS0tICogcmVzb2x2ZSB3YXJuaW5ncyAtLT4NCjwhLS0gKiBjdXN0b21pc2UgY29sb3VycyAtLT4NCjwhLS0gKiBheGVzIHdpdGggZGF0ZXM6IG9yZGVycyBub3QgaW4gdGltZSwgamFudWFyeSBhZnRlciBmZWIgKG9yZGVyZWQgYnkgZGF5IG5vdCB0YWtpbmcgbW9udGggaW50byBhY2NvdW50KSAtLT4NCg0KYGBge3IgUGxvdHMsIGVjaG89RkFMU0UsIHdhcm5pbmc9RkFMU0V9DQpyZXN1bHRzPC1zaG93X3Bsb3RzKGRhdGFzZXRzLmFsbCwgdG9fcGxvdCkNCmZvcihpIGluIDE6bGVuZ3RoKHJlc3VsdHMpKXsNCiAgcHJpbnQocmVzdWx0c1tbaV1dKQ0KfQ0KDQpgYGANCg0K